package com.ctvit.cch.core.enums;

import lombok.Getter;

import java.util.Arrays;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

/**
 * 通用生成状态枚举
 *
 * @author heyingcheng
 * @date 2025/10/15
 */
@Getter
public enum GenerateStatusEnum {
    
    /**
     * 待创作
     */
    WAIT("待创作"),

    /**
     * 排队中
     */
    QUEUED("排队中"),
    
    /**
     * 创作中
     */
    ING("创作中"),
    
    /**
     * 创作成功
     */
    SUCCESS("创作成功"),
    
    /**
     * 创作失败
     */
    FAILURE("创作失败");

    private final String comment;

    GenerateStatusEnum(String comment) {
        this.comment = comment;
    }

    // 使用内部Map优化查找性能
    private static final Map<String, GenerateStatusEnum> CODE_MAP = Arrays.stream(values()).collect(Collectors.toMap(GenerateStatusEnum::name, Function.identity()));

    /**
     * 根据code获取枚举
     *
     * @param code 状态码
     * @return 对应的枚举值
     */
    public static GenerateStatusEnum getByCode(String code) {
        return CODE_MAP.get(code);
    }

}